/**
 * 
 * @param {String} url  请求地址
 * @param {Object} params 请求参数
 * @param {Function} callback 回调函数
 * @param {String/undefined} type 返回数据类型
 * @param {Object} headers 自定义请求头
 */

function get(url,params,callback,type,headers={}){
    //1 创建ajax对象
    const xhr = new XMLHttpRequest
    //2 监听状态
    console.log(xhr);
    xhr.onreadystatechange = () =>{
        if(xhr.readyState === 4){
            console.log(3333);
            if(xhr.status === 200){
                let res = xhr.responseText
                console.log(444,res);
                if(type === 'json')res = JSON.parse(res)
                console.log(22222);
                callback(res)
            } else{
            console.log('瑕疵：',xhr.status)
            }
        }
    }
    // 1 定义空数组
    let temp = []
    // 2 遍历参数数据
    for(let key in params)
    {
        // 3 把对象中的数据放到空数组中
        temp.push(`${key}=${params[key]}`)
    }

    //3 设置请求
        xhr.open('get', `${url}?${temp.join('&')}`)
    // if (headers)headers(xhr)
    for(let key in headers)
    {
        xhr.setRequestHeader(key,headers[key])
    }
    //4 发送请求
    xhr.send(null)
}




/**
 * 
 * @param {String} url 
 * @param {Object} params 
 * @param {Function} callback 
 * @param {String/Undefined} type 
 * @param {Object} headers 
 */
function post(url,params,callback,headers = {},type){
    // 1 创建ajax对象
const xhr = new XMLHttpRequest
// 2 监听状态
xhr.onreadystatechange = () => {
    if (xhr.readyState === 4){
        if(xhr.status === 200){
            let res = xhr.responseText
            if(type === 'json')res = JSON.parse(res)
            console.log(res);
            callback(res)
        }else{
            console.log(xhr.status);
        } 
    }
}
// 1 定义空数组
let temp = []
// 2 遍历参数对象
for(let key in params)
{
// 3 把对象中的数据push到空数组中拼接  键 = 数据
    temp.push(`${key}=${params[key]}`)
}

// 3 设置请求
xhr.open('post',url)
xhr.setRequestHeader('content-type','application/x-www-form-urlencoded')
for(let key in headers)
{
    xhr.setRequestHeader(key,headers[key])
}
// 4 发送请求
xhr.send(temp.join('&'))
}
// export { get , post}